using System.ComponentModel.DataAnnotations;
using jiuyuan.数据.玩家类;

namespace jiuyuan.数据.用户类
{
    /// <summary>
    /// 系统用户类 - 代表登录账户
    /// </summary>
    public class 用户
    {
        public Guid Id { get; set; } = Guid.CreateVersion7();
        public string 用户名 { get; set; } = "";
        public string 密码哈希 { get; set; } = "";
        public string 邮箱 { get; set; } = "";
        public bool 是管理员 { get; set; }
        public DateTime 创建时间 { get; set; } = DateTime.Now; // 默认使用UTC时间
        public DateTime 最后登录时间 { get; set; } = DateTime.Now; // 默认使用UTC时间
        
        // 导航属性 - 一个用户可以拥有多个角色
        public ICollection<玩家角色> 玩家角色列表 { get; set; } = [];
    }

    /// <summary>
    /// 玩家角色类 - 代表游戏中的具体角色
    /// 现在直接关联到具体的玩家实例
    /// </summary>
    public class 玩家角色
    {
        public Guid Id { get; set; } = Guid.CreateVersion7();
        public string 角色名 { get; set; } = "";
        public int 等级 { get; set; }
        public string 职业 { get; set; } = "";
        public DateTime 创建时间 { get; set; } = DateTime.Now; // 默认使用UTC时间
        
        // 外键 - 关联到用户账户
        public Guid 用户Id { get; set; }
        
        // 外键 - 直接关联到游戏中的玩家实例
        public Guid 游戏玩家Id { get; set; }
        
        // 导航属性
        public 用户 用户 { get; set; } = null!;
        public 玩家 游戏玩家 { get; set; } = null!;
    }
}